package FirstStage.DuoTai;

public class DongTaiBangDing {
    public static void main(String[] args) {
        A a = new B();
//        System.out.println(a.sum()); // 40
//        System.out.println(a.sum1()); // 30
        // 如果把子类的sum（）注销了，此时向上查找调用父类A的sum（）方法，此时牵扯到动态绑定机制
        // public int sum(){
        //        return getI()+ 10;
        //    }
        // java的动态绑定机制：1.调用对象方法时，该方法会和该对象的内存地址/运行类型绑定
        // 2. 当调用对象属性时，没有动态绑定机制，哪里声明，哪里使用
        System.out.println(a.sum()); // a的运行类型是B，因此调用子类的getI（），20 + 10 =30
        // 如果把子类的sum1（）注销了,此时调用父类A的sum1（）
//        public int sum1(){
//            return i + 10;
//        }
        System.out.println(a.sum1()); //属性没有动态绑定机制，10 + 10 =20
    }
}
